import { get, post, request } from '../request.js'

// AI指导相关API

/**
 * 创建AI指导会话
 * @param {Object} data 会话参数
 * @param {string} data.resultId 分析结果ID
 * @param {string} data.sportType 运动类型
 * @param {string} data.userId 用户ID
 * @returns {Promise}
 */
export const createConversation = (data) => {
    return post('/ai-guidance/conversation', data, { timeout: 30000 }) // 创建会话设置30秒超时
}

/**
 * 向AI提问
 * @param {Object} data 提问数据
 * @param {string} data.conversationId 会话ID
 * @param {string} data.question 问题内容
 * @param {string} [data.resultId] 分析结果ID
 * @param {string} [data.sportType] 运动类型
 * @param {number} [data.relatedTimestamp] 相关时间戳
 * @returns {Promise}
 */
export const askQuestion = (data) => {
    return post('/ai-guidance/ask', data, { timeout: 60000 }) // AI接口设置60秒超时
}

/**
 * 获取会话历史
 * @param {string} conversationId 会话ID
 * @returns {Promise}
 */
export const getConversation = (conversationId) => {
    return get(`/ai-guidance/conversation/${conversationId}`)
}

/**
 * 获取用户的所有会话
 * @param {string} resultId 分析结果ID
 * @returns {Promise}
 */
export const getUserConversations = (resultId) => {
    return get('/ai-guidance/conversations', { resultId })
}

/**
 * 获取推荐问题
 * @param {Object} params 参数
 * @param {string} params.resultId 分析结果ID
 * @param {string} params.sportType 运动类型
 * @returns {Promise}
 */
export const getSuggestedQuestions = (params) => {
    return get('/ai-guidance/suggestions', params)
}

/**
 * 结束会话
 * @param {string} conversationId 会话ID
 * @returns {Promise}
 */
export const endConversation = (conversationId) => {
    return post(`/ai-guidance/conversation/${conversationId}/end`)
}

/**
 * 快速提问（无需创建会话）
 * @param {Object} params 提问参数
 * @param {string} params.resultId 分析结果ID
 * @param {string} params.sportType 运动类型
 * @param {string} params.question 问题内容
 * @param {number} [params.relatedTimestamp] 相关时间戳（可选）
 * @returns {Promise}
 */
export const quickAsk = (params) => {
    return post('/ai-guidance/quick-ask', null, { params })
}

// 默认导出所有AI指导相关API
export default {
    createConversation,
    askQuestion,
    getConversation,
    getUserConversations,
    getSuggestedQuestions,
    endConversation,
    quickAsk
}